<?php

class Application_Model_DbTable_Pedidos extends Zend_Db_Table_Abstract
{

    protected $_name = 'pedidos';

	function getPedidos() {
		$select  = $this->_db->select()
			->from($this->_name)
			->joinLeft('clientes','clientes.id_cliente = pedidos.id_cliente',array('nombre','apellido','telefono'))
			->joinLeft('pedidos_estado','pedidos_estado.id_estado = pedidos.id_estado',array('estado' => 'nombre'))
			->order('pedidos.id_pedido ASC');
			
		// print_r($select->__toString());die();

		$result = $this->getAdapter()->fetchAll($select);

		return $result;
	}
	
	function getPedidosFromId($id) {
		$select  = $this->_db->select()
			->from($this->_name)
			->where("pedidos.id_pedido = ?", $id) //Pedidos Pendientes
			->joinLeft('clientes','clientes.id_cliente = pedidos.id_cliente',array('nombre','apellido','telefono','email','direccion'))
			->joinLeft('pedidos_estado','pedidos_estado.id_estado = pedidos.id_estado',array('estado' => 'nombre'))
			->order('pedidos.id_pedido ASC');
			
		// print_r($select->__toString());die();

		$result = $this->getAdapter()->fetchAll($select);

		return $result;
	}
	
	function getPedidosFromClienteId($id) {
		$select  = $this->_db->select()
			->from($this->_name)
			->where("pedidos.id_cliente = ?", $id) //Pedidos Pendientes
			->joinLeft('clientes','clientes.id_cliente = pedidos.id_cliente',array('nombre','apellido','telefono'))
			->joinLeft('pedidos_estado','pedidos_estado.id_estado = pedidos.id_estado',array('estado' => 'nombre'))
			->order('pedidos.id_pedido DESC');
			
		// print_r($select->__toString());die();

		$result = $this->getAdapter()->fetchAll($select);

		return $result;
	}
	
	function pedidoPerteneceAlCliente($idCliente, $idPedido) {
		$select  = $this->_db->select()
			->from($this->_name)
			->where("pedidos.id_cliente = ?", $idCliente) 
			->where("pedidos.id_pedido = ?", $idPedido);
			
		// print_r($select->__toString());die();

		$result = $this->getAdapter()->fetchAll($select);
		
		if(count($result)>0){
			return true;
		}else{
			return false;
		}
	}
	
	function getPedidosPendientes() {
		$select  = $this->_db->select()
			->from($this->_name)
			->where("pedidos.id_estado = ?", 1) //Pedidos Pendientes
			->joinLeft('clientes','clientes.id_cliente = pedidos.id_cliente',array('nombre','apellido','telefono','email','direccion'))
			->joinLeft('pedidos_estado','pedidos_estado.id_estado = pedidos.id_estado',array('estado' => 'nombre'))
			->order('pedidos.id_pedido ASC');
			
		// print_r($select->__toString());die();

		$result = $this->getAdapter()->fetchAll($select);

		return $result;
	}
	
	public function contar() {
		$select  = $this->_db->select()
			->from($this->_name, array('total' => 'count(*)'));

		$result = $this->getAdapter()->fetchAll($select);
		
		return $result[0]['total'];
	}
	
	public function total() {
		$select  = $this->_db->select()
			->from($this->_name, array('subtotal' => 'monto_total'));

		$result = $this->getAdapter()->fetchAll($select);
		$total = 0;
		// print_r($result);die();
		foreach($result as $val){
			$total += $val['subtotal'];
		}
		
		return $total;
	}
	
	public function totalAnual() {
		$select  = $this->_db->select()
			->from($this->_name, array('subtotal' => 'monto_total'))
			->where("YEAR(`fecha_compra`) = ?", date("Y"));
		// print_r($select->__toString());die();
		$result = $this->getAdapter()->fetchAll($select);
		$total = 0;
		// print_r($result);die();
		foreach($result as $val){
			$total += $val['subtotal'];
		}
		
		return $total;
	}
	
	public function statPedidosVentas() {
		$select  = $this->_db->select()
			->from($this->_name, array('subtotal' => 'monto_total', 'mes' => ' MONTH(fecha_compra)'))
			->where("YEAR(`fecha_compra`) = ?", date("Y"));
		// print_r($select->__toString());die();
		$resultPendientes = $this->getAdapter()->fetchAll($select);
		$meses = array();
		for($i=1;$i<=12;$i++){
			$meses[$i] = 0;
		}
		// print_r($meses);die();
		// print_r($resultPendientes);die();
		foreach($resultPendientes as $val){
			$meses[$val['mes']] += $val['subtotal'];
		}
		
		return $meses;
	}
	
}

